<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>题目</title>
</head>
<body>
    <pre>
    输入：
    由'abcdefghijklmnopqrstuvwxyz0123456789'中元素组成的数组
    var arr = ['13b','aab','asdfasdf','a','baa','31b'];

    输出：
    console.log(result); 
    result = [['13b','31b'],['aab','baa']]
    </pre>
    <pre>
        更新log：
            1th submit.方法1存在重复元素bug
            2th submit.修复方法1的bug，性能测试
    </pre>

    <!-- 性能测试 -->
    <pre>
    简单性能测试：
           数据量   串长     数据重复率  方法1：后去重   方法2先去重             现象
           1000     rand         低         25.860ms       19.396ms      二者时耗相差几百ms，方法2并不总比1快
           10000    rand         低         799.401ms      788.221ms

           1000     2            高         10.724ms       5.672ms       时耗有很大差异，方法2更快
           10000    2            高         714.511ms      18.573ms

           1000     1            极高       11.608ms       17.825ms      二者时耗相差不多，方法2并不总比1快
           10000    1            极高       1356.806ms     892.771ms

    测试结果分析：
            1.串长和数据重复率是性能的主要影响因素
            2.用Hash表先去重（方法2）在串较短且数据重复率较高时有明显的优势

    从实现的角度分析：
            1.先去重要比后去重实现起来更容易
            2.后去重的时间复杂度是O(n^3)级的，先去重是O(n^2)级的，而且先去重能够减少筛选部分需要处理的数据量
    </pre>

    <script src="solution.js"></script>
    <script src="test.js"></script>
    <script>
    var Test = my.Test;

    // t1
    console.log('t1_1K');
    new Test(1000);
    console.log('t1_1W');
    new Test(10000);

    // t2
    console.log('t2_1K');
    new Test(1000, 2);
    console.log('t2_1W');
    new Test(10000, 2);

    // t3
    console.log('t3_1K');
    new Test(1000, 1);
    console.log('t3_1W');
    new Test(10000, 1);

    // t4
    console.log('t4_1K');
    new Test(1000, 36);
    console.log('t4_1W');
    new Test(10000, 36);

    // t5
    console.log('t5_1K');
    new Test(1000, 4);
    console.log('t5_1W');
    new Test(10000, 4);

    // t6
    console.log('t6_1K');
    new Test(1000, 3);
    console.log('t6_1W');
    new Test(10000, 3);

    
    </script>
</body>
</html>